package com.beidouapp.service;

import java.util.List;
import java.util.Map;

import com.beidouapp.domain.pojo.Role;
import com.beidouapp.domain.pojo.RoleAndResourceVO;

public interface RoleService {
	public List<Role> findRolesByEmpId(Long userId);

	public List<Role> findRolesByOrgId(Long orgId);

	/**
	 * 保存角色信息(根据ID是否为空来判断是保存还是更新).
	 *
	 * @param role
	 *            角色对象.
	 * @return 是否保存成功.
	 */
	public int saveOrUpdateRole(Role role);
	
	public List<Role> findRoleList(Role role);

	public List<Role> findRolesByMap(Map<String, Object> params);

	public List<Role> findRolesByDepartmentId(String departmentId);

	/**
	 * 获取角色信息列表(分页)
	 */
	public List<Role> findPageRoles(Map<String, Object> params, Integer offset, Integer limit);

	public long countPageRoles(Map<String, Object> params);

	// -------------------------------------------------------

	/**
	 * 获取角色信息
	 *
	 * @param roleId
	 * @return
	 */
	public Role getRoleById(Long roleId);

	public Role getRoleByCode(String roleCode);

	/**
	 * 删除角色
	 *
	 * @param roleId
	 */
	public void removeRoles(Long... roleId);
	
	
	public void  deleteContactRoleByFKId(String roleFKId);

	/**
	 * 查询用户所具有的角色.
	 *
	 * @param loginName
	 *            用户登录名（精确值）
	 * @return 角色集合
	 */
	// public List <Role> findRoleByUser (String loginName);
	/**
	 * 同步基础数据平台的角色数据入库
	 * 
	 * @param syncList
	 *            同步数据
	 */
	public void saveSyncRoleList(List<Role> syncList);
	
	public void saveSyncRoleList(Role role);
	
	
	/**
	 * 获取双流机场的指定角色
	 *
	 * @param roleId
	 */
	public Role getRolesByFKId(String roleFKId);
	
	/**
	 * 获取双流机场的指定角色
	 *
	 * @param roleId
	 */
	public void saveSyncRoleAndResourceList(Map<String,List<RoleAndResourceVO>> roleAndResource );
}
